package com.first.orange.mapper;

import com.first.orange.beans.Cart;
import com.first.orange.beans.Orders;
import com.first.orange.beans.ShopAddress;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * Created on 2021/7/6.
 * <p>
 * Author: wuqilong
 * <p>
 * Description: 支付功能数据库处理接口
 */
public interface PayMapper {

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : int
     * @description : 插入用户添加的收货地址信息
     */
    int insertShopAddress(ShopAddress shopAddress);

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : java.util.List<com.first.orange.beans.ShopAddress>
     * @description : 查询用户所有的收货地址
     */
    List<ShopAddress> selectAllShopAddress(@Param("userId") Integer userId);

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : int
     * @description : 删除用户的收货地址信息
     */
    int deleteShopAddress(@Param("shopId") Integer shopId);

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : int
     * @description : 修改用户默认收货地址信息
     */
    int updateDefaultTag1(@Param("shopId") Integer shopId);

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : int
     * @description : 修改用户默认收货地址信息
     */
    int updateDefaultTag2(@Param("shopId") Integer shopId);

    /**
     * @author : 武
     * @date : 2021/7/6
     * @return : java.util.List<com.first.orange.beans.ShopAddress>
     * @description : 查询用户默认收货地址信息
     */
    List<ShopAddress> selectDefaultShopAddress(@Param("shopId") Integer shopId, @Param("userId") Integer userId);

    /**
     * @author : 武
     * @date : 2021/7/7
     * @return : java.util.List<com.first.orange.beans.Cart>
     * @description : 查询已登录用户加入购物车且勾选的商品信息
     */
    List<Cart> selectCart(@Param("userId") Integer userId, @Param("checked") Integer checked);

    /**
     * @author : 武
     * @date : 2021/7/7
     * @return : boolean
     * @description : 将页面中获取到的数据插入订单表中
     */
    int insertOrders(@Param("orders") List<Orders> orders);

    /**
     * @author : 武
     * @date : 2021/7/8
     * @return : int
     * @description : 删除购物车中已勾选的商品信息
     */
    int  deleteCart(@Param("userId") Integer userId, @Param("checked") Integer checked);

    /**
     * @author : 武
     * @date : 2021/7/9
     * @return : int
     * @description : 修改用户购买成功的商品库存功能接口实现
     */
    int updateProductStock(@Param("productId") Integer productId, @Param("stock") Integer stock, @Param("monthSales") Integer monthSales, @Param("totalSales") Integer totalSales);
}
